Skip to content

Ajout des tests unitaires, corrections de bugs et améliorations diverses#17

Open
guepardlover77 wants to merge 5 commits intoQCMED:mainfrom
guepardlover77:main
Open

Ajout des tests unitaires, corrections de bugs et améliorations diverses#17
guepardlover77 wants to merge 5 commits intoQCMED:mainfrom
guepardlover77:main

Conversation

@guepardlover77
Copy link
Copy Markdown

Description

Cette PR regroupe plusieurs améliorations et corrections apportées au projet :

Commits inclus

1. de63ebe - Ajout des tests unitaires et corrections de bugs

Tests ajoutés :

  • QuestionsTableTest : 9 tests pour la table Questions (admin)
  • DossiersTableTest : 9 tests pour la table Dossiers (admin)
  • StudentInterfaceTest : 12 tests pour l'interface étudiant

Bugs corrigés :

  • DossiersTable : suppression des filtres dupliqués et de la colonne chapter.numero inexistante
  • Student Panel : correction des routes utilisant le mauvais préfixe (admin au lieu de student)
  • SecurityPanelTest : correction du test pour suivre les redirects Filament

Factories mises à jour :

  • AttemptFactory : ajout des champs requis
  • DossierFactory : refactorisation pour ne plus créer automatiquement les questions

2. a5df974 - Fix Livewire 404 error in nginx config

Ajout d'un bloc location prioritaire pour les routes /livewire afin qu'elles passent par PHP au lieu d'être interceptées par la règle des fichiers statiques.


3. 405e140 - Ajout de la configuration Docker pour le déploiement

Nouveaux fichiers :

  • Dockerfile : Image PHP 8.4 Alpine avec Nginx et Supervisor
  • docker-compose.yml : Orchestration avec volumes persistants
  • docker/nginx.conf : Configuration Nginx optimisée
  • docker/supervisord.conf : Gestion des processus
  • docker/php.ini : Configuration PHP personnalisée
  • docker/entrypoint.sh : Script d'initialisation avec migrations/seeders
  • .dockerignore : Exclusion des fichiers inutiles

Usage :

docker compose up -d
# -> http://localhost/admin (admin)
# -> http://localhost/student (étudiant)

4. 88ea8d4 - Implémentation complète de l'interface étudiante

Nouvelles fonctionnalités :

  • Dashboard hiérarchique (Matières → Chapitres → QI/Dossiers)
  • Interface de réponse aux Questions Isolées avec support QROC
  • Affichage progressif des questions pour les dossiers
  • Page de résultats détaillés pour les dossiers
  • Historique des tentatives avec filtres
  • Widgets de progression (stats globales, par chapitre)

Fichiers créés :

  • StudentDashboard, AttemptsHistory (pages)
  • ProgressWidget, ChapterProgressWidget (widgets)
  • AnswerDossier, ViewDossier, DossierForm
  • Vues Blade correspondantes

5. 7263fb5 - Réorganisation du projet et amélioration du guide de contribution

  • Déplace PULL_REQUEST_TEMPLATE.md vers .github/ pour reconnaissance GitHub
  • Crée docs/images/ et y déplace les images (logo, roadmap, social_preview)
  • Met à jour les références aux images dans README.md et CONTRIBUTING.md
  • Supprime les fichiers ExampleTest.php par défaut (tests triviaux)
  • Réécrit CONTRIBUTING.md avec un guide complet pour les nouveaux contributeurs
  • Ajoute .claude/ au .gitignore

Aucun package supplémentaire requis.

Type de changement

  • Bug fix
  • Nouvelle fonctionnalité (sans casser d'autres fonctionnalités)
  • Ce changement demande une mise à jour de la documentation

Comment ces changements ont été testés?

Exécution de la suite de tests complète :

php artisan test

Résultat : 53 tests passent (136 assertions)

  • QuestionsTableTest (9 tests)
  • DossiersTableTest (9 tests)
  • StudentInterfaceTest (12 tests)
  • Tests existants (ChapterFormTest, MatiereFormTest, QuestionSchemaTest, DossierSchemaTest, SecurityPanelTest)

Checklist:

  • Mon code suit les guidelines de style de ce projet
  • J'ai fait une première révision de mon code
  • J'ai commenté mon code dans les parties difficiles à comprendre
  • J'ai changé la documentation comme j'en ai besoin
  • Mes changements ne soulèvent pas de nouveaux warnings
  • J'ai ajouté des tests qui vérifient que ma fonctionnalité ou mes fix marchent comme il le faut
  • Tous les tests nouveaux et déjà existants sont valides
  • Tous les changements dont dépend ce PR ont été merge avant de le soumettre à révision

🤖 Generated with Claude Code

guepardlover77 and others added 5 commits December 28, 2025 09:58
- Déplace PULL_REQUEST_TEMPLATE.md vers .github/ pour reconnaissance GitHub
- Crée docs/images/ et y déplace les images (logo, roadmap, social_preview)
- Met à jour les références aux images dans README.md et CONTRIBUTING.md
- Supprime les fichiers ExampleTest.php par défaut (tests trivials)
- Réécrit CONTRIBUTING.md avec un guide complet pour les nouveaux contributeurs
- Ajoute .claude/ au .gitignore

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Nouvelles fonctionnalités:
- Dashboard hiérarchique (Matières → Chapitres → QI/Dossiers)
- Interface de réponse aux Questions Isolées avec support QROC
- Affichage progressif des questions pour les dossiers
- Page de résultats détaillés pour les dossiers
- Historique des tentatives avec filtres
- Widgets de progression (stats globales, par chapitre)

Fichiers créés:
- StudentDashboard, AttemptsHistory (pages)
- ProgressWidget, ChapterProgressWidget (widgets)
- AnswerDossier, ViewDossier, DossierForm
- Vues Blade correspondantes

Fichiers modifiés:
- Question.php: relation attempts()
- QuestionsTable: filtre QI, colonnes statut
- AnswerQuestion: support QROC, historique
- DossierResource/DossiersTable: interface étudiante
- StudentPanelProvider: configuration widgets/pages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Nouveaux fichiers:
- Dockerfile: Image PHP 8.4 Alpine avec Nginx et Supervisor
- docker-compose.yml: Orchestration avec volumes persistants
- docker/nginx.conf: Configuration Nginx optimisée
- docker/supervisord.conf: Gestion des processus
- docker/php.ini: Configuration PHP personnalisée
- docker/entrypoint.sh: Script d'initialisation avec migrations/seeders
- .dockerignore: Exclusion des fichiers inutiles

Modifications:
- README.md: Documentation Docker ajoutée
- Correction des types de propriétés pour Filament 4.0

Usage:
  docker compose up -d
  -> http://localhost/admin (admin)
  -> http://localhost/student (étudiant)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add priority location block for /livewire routes to ensure they pass
through PHP instead of being matched by the static file rule.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tests ajoutés :
- QuestionsTableTest : 9 tests pour la table Questions (admin)
- DossiersTableTest : 9 tests pour la table Dossiers (admin)
- StudentInterfaceTest : 12 tests pour l'interface étudiant

Bugs corrigés :
- DossiersTable : suppression des filtres dupliqués et de la colonne chapter.numero inexistante
- Student Panel : correction des routes utilisant le mauvais préfixe (admin au lieu de student)
- SecurityPanelTest : correction du test pour suivre les redirects Filament

Factories mises à jour :
- AttemptFactory : ajout des champs requis
- DossierFactory : refactorisation pour ne plus créer automatiquement les questions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yoyoyo
J'ai pas bien compris c'est quoi l'erreur et elle trigger dans quel contexte ?

@Ragy2001 Ragy2001 self-assigned this Jan 8, 2026
@Ragy2001 Ragy2001 linked an issue Jan 8, 2026 that may be closed by this pull request
4 tasks
@@ -0,0 +1,98 @@
<x-filament-panels::page>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coucou!
C'est vraiment super on a vraiment besoin d'un affichage des stats des tentatives de réponses aux questions!
Mais plutôt que de faire un fichier blade pour un composant custom, je pense que ça serait mieux et plus entretenable de juste utiliser un des widgets natifs de filament, surtout qu'il est plutôt joli et bien fait!
voici le lien du widget stats-overview de la docu si tu veux

</x-filament::section>
</div>

{{-- Liste des matières avec chapitres --}}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dans la même veine, au lieu de faire un blade exprès pour un affichage des matières dans le dashboard des étudiants, on pourrait juste utiliser une table classique et faire un affichage en "grid" ça pourrait donner une très belle impression et ça serait plus facilement entretenable je pense!
voici encore un lien vers la docu!
N'hésite pas à me dire ce que t'en penses!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Interface étudiants

2 participants